package ucenter

import (
	global "yundata-service/internal"
	um "yundata-service/pkg/model/ucenter"
	uv "yundata-service/pkg/validation/ucenter"
)

type DptAction struct {
	global.ActionModel
}

// 获取部门树
func (ac *DptAction) GetDptTree() {
	// dptModel := &Dpt{}

	// type Data struct {
	// 	Dpts []Dpt `json:"dpts"`
	// }
	// data := &Data{Dpts: dptList}

	// ac.Success("获取数据成功", data)
}

// 添加部门
func (ac *DptAction) AddDpt() {
	addForm := &uv.AddDptForm{}

	c := ac.Ctx
	// 绑定post by json 到addForm
	if err := c.ShouldBindJSON(addForm); err != nil {
		ac.Fail("参数错误")
		return
	}

	// 将addForm转换为Dpt
	dptModel := &um.Dpt{}
	dptModel.Name = addForm.Name
	dptModel.ParentId = addForm.ParentId

	// 插入数据库
	if err := global.GDb.Create(dptModel).Error; err != nil {
		ac.Fail("添加失败")
		return
	}

	ac.Success("添加成功")
}

// 更新部门
func (ac *DptAction) UpdateDpt() {
	updateForm := &uv.UpdateDptForm{}

	c := ac.Ctx
	// 绑定post by json 到updateForm
	if err := c.ShouldBindJSON(updateForm); err != nil {
		ac.Fail("参数错误")
		return
	}

	// 将updateForm转换为Dpt
	dptModel := &um.Dpt{}
	dptModel.ID = updateForm.ID
	dptModel.Name = updateForm.Name
	dptModel.ParentId = updateForm.ParentId

	// 更新数据库
	if err := global.GDb.Model(dptModel).Updates(dptModel).Error; err != nil {
		ac.Fail("更新失败")
		return
	}

	ac.Success("更新成功")
}

// 删除部门
func (ac *DptAction) DeleteDpt() {

}
